// Dart空安全示例
// 展示问号(?)在变量声明中的使用场景

void main() {
  // 1. 可空类型声明
  String? nullableString;
  int? nullableInt;

  // 2. 空安全操作符
  print('nullableString长度: ${nullableString?.length}'); // 安全调用

  // 3. 非空断言(添加null检查)
  String nonNullableString = nullableString ?? '默认值';

  // 4. 空值合并
  String defaultString = nullableString ?? '默认值';

  // 5. 函数参数
  printLength(nullableString);

  // 6. 类成员变量
  final user = User(name: null);
  print('用户名: ${user.name ?? '匿名'}');
}

// 可空函数参数
void printLength(String? str) {
  if (str != null) {
    print('字符串长度: ${str.length}');
  } else {
    print('字符串为null');
  }
}

class User {
  String? name; // 可空类成员

  User({this.name});
}
